/**
 * Copyright 2018-2020 stylefeng & fengshuonan (https://gitee.com/stylefeng)
 * <p>
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package cn.stylefeng.guns.modular.system.warpper;

import cn.stylefeng.guns.core.common.constant.factory.ConstantFactory;
import cn.stylefeng.guns.modular.classification.service.IClassificationService;
import cn.stylefeng.guns.modular.system.model.Classification;
import cn.stylefeng.roses.core.base.warpper.BaseControllerWrapper;
import cn.stylefeng.roses.core.util.ToolUtil;
import cn.stylefeng.roses.kernel.model.page.PageResult;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;
import java.util.Map;

/**
 * 部门列表的包装
 *
 * @author fengshuonan
 * @date 2017年4月25日 18:10:31
 */
public class ItemsWarpper extends BaseControllerWrapper {

    @Autowired
    private IClassificationService classificationService;

    private String shouru = "srlx";

    private String zhichu="zclx";

    public ItemsWarpper(Map<String, Object> single) {
        super(single);
    }

    public ItemsWarpper(List<Map<String, Object>> multi) {
        super(multi);
    }

    public ItemsWarpper(Page<Map<String, Object>> page) {
        super(page);
    }

    public ItemsWarpper(PageResult<Map<String, Object>> pageResult) {
        super(pageResult);
    }

    @Override
    protected void wrapTheMap(Map<String, Object> map) {

        //包装账户名称 accountid
        if(ToolUtil.isNotEmpty(map.get("accountid"))){
            Integer accountid=Integer.valueOf(map.get("accountid").toString());
            map.put("accountid",ConstantFactory.me().getAccountNameById(accountid));
        }
        else{
            map.put("accountid","-");
        }

        //包装收支类型 paykind
        if(ToolUtil.isNotEmpty(map.get("paykind"))){
            String paykind=map.get("paykind").toString();
            String paykind2=ConstantFactory.me().getKindName(paykind);

//            map.put("paykind",ConstantFactory.me().getKindName(paykind));

            //包装支付金额的颜色
            String pcode=ConstantFactory.me().getFatherCode(paykind); //收入还是支出
            String pay=map.get("pay").toString();
            if(pcode.equals("zclx")){ //支出类型
                String pay2="-"+pay;
                map.put("pay","<div style=\"color: red\">"+pay2+"</div>");
                map.put("paykind","<div style=\"color: red\">"+paykind2+"</div>");
            }
            else if(pcode.equals("srlx")){ //收入类型
                String pay2="+"+pay;
                map.put("pay","<div style=\"color: green\">"+pay2+"</div>");
                map.put("paykind","<div style=\"color: green\">"+paykind2+"</div>");
            }
        }
        else{
            map.put("paykind","-");
        }

        //包装更新人 updateid
        if(ToolUtil.isNotEmpty(map.get("updateid"))){
            Integer updateid=Integer.valueOf(map.get("updateid").toString());
            map.put("updateid",ConstantFactory.me().getUserNameById(updateid));
        }
        else{
            map.put("updateid","-");
        }





        //包装账单金额增减
//        if(ToolUtil.isNotEmpty(map.get("paykind"))&&ToolUtil.isNotEmpty(map.get("pay"))){
//            String pay=map.get("pay").toString();
//            String paykind=map.get("paykind").toString();
//
//            //得到收支类型
//            EntityWrapper<Classification> classificationEntityWrapper=new EntityWrapper<>();
//            classificationEntityWrapper.eq("classcode",paykind);
//            Classification classification=classificationService.selectOne(classificationEntityWrapper);
//            String pcode=classification.getPcode();
//
//            if(pcode.equals(zhichu)) //支出 减法
//            {
//                pay+="-"+pay;
//            }
//            else if(pcode.equals(shouru)){  //收入 加法
//                pay+="-"+pay;
//            }
//
//            map.put("pay",pay);
//        }
//        else{
//            map.put("pay","-");
//        }








    }
}
